A graphical user interface (GUI) of an application, e.g, a Web application, can be complicated to test and debug. A GUI test tool can be used to automate the test of an application's GUI by performing various types of functional, load, or translation testing. For example, a GUI test tool can automatically fill in the address of an email recipient and run the email program to see whether the email can be delivered successfully. Thus, a test engineer can sit back and monitor the test without having to manually perform the test procedures.
A conventional GUI test tool uses various techniques to inform the user of the details of the test. For example, a live playback of an application can be shown on the display in real time while a test tool is driving the application. A test tool can also log its activities in a log file. Further, a test tool can take screenshots and screencasts of a test run, which can be reviewed by a user at a later time to determine the success or failure of the test. Additionally, a test tool can conditionally test the logic contained in the application.
The conventional techniques allow quality assurance engineers to determine the outcome of the tests in a complex and time-consuming manner. A test engineer can spend considerable resources to find out what failed, when the root cause occurred, and how and why the failure occurred. The test engineer conducting a test is generally not the same person who creates the test automation tool, and, therefore, may lack the expertise to successfully debug the applications. Further, in a regression test where a test automation tool is used to test an upgraded version of an application, details of older versions of the application may be forgotten or lost. Therefore, knowledge of the legacy of the application may not have been properly passed down to the persons who work with the upgraded version.
Therefore, there is a need to provide detailed information about an application's GUI in an informative and user-friendly manner, such that debugging efficiency can be improved.